package io.renren.modules.wcs;

import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * @Author: 蔡翔
 * @Date: 2019/9/23 9:32
 * @Version 1.0
 */
public class QGSThreadPool {
    public static AtomicInteger threadCount = new AtomicInteger();
    public static ThreadPoolExecutor executor = new ThreadPoolExecutor(
            1,          //核心线程数
            1,     //最大线程数。
            0L,      // 空闲线程存活时间  （这里是一分钟）
            TimeUnit.MINUTES, // 空闲线程存货的时间单位
            new ArrayBlockingQueue<>(100),  //一个指定上限的的阻塞队列，这个队列中存放着待执行的任务
            new ThreadFactory() {
                // 自定义一个线程工厂来给线程池里面的线程取名字
                @Override
                public Thread newThread(Runnable r) {
                    return new Thread(r, "threadPool-ddj-" + threadCount.incrementAndGet());
                }
            },
            new RejectedExecutionHandler() {
                // 自定义一个拒绝处理策略，安慰被线程池拒之门外的任务
                @Override
                public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
                    System.out.println("堆垛机线程池拒绝了任务："+r);
                }
            }
    );
    ExecutorService executorService = Executors.newSingleThreadExecutor();

    /*public ExecutorService getExecutor(){
        return this.executor;
    }*/
}
